#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <stack>
using namespace std;
#define int long long

//int t, m, x;
//int co[55], h[55];
//int dp[100005];
//int mh;
//
//void solve() {
//	cin >> m >> x;
//	for (int i = 0; i < m; i++) {
//		cin >> co[i] >> h[i];
//		mh += h[i];
//	}
//	fill(dp, dp + mh + 1, 1e18);
//	dp[0] = 0;
//	for (int i = 0; i < m; i++) {
//		for (int j = mh; j >= h[i]; j--) {
//			if (dp[j - h[i]] + co[i] <= i * x)
//				dp[j] = min(dp[j], dp[j - h[i]] + co[i]);
//		}
//	}
//	for (int i = mh; i >= 0; i--) {
//		if (dp[i] != 1e18) {
//			cout << i << '\n';
//			return;
//		}
//	}
//}
//
//
//signed main(){
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> t;
//	while (t--) {
//		solve();
//	}
//	return 0;
//}


//int n, m;
//int a[500005];
//int sum[500005];
//int ans;
//
//signed main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> n >> m;
//	for (int i = 1; i <= n; i++) {
//		cin >> a[i];
//		sum[i] = sum[i - 1] + a[i];
//	}
//	deque<int> q;
//	int l, r;
//	for (l = 1,r=1; r <= n; r++) {
//		while (!q.empty() && sum[q.back()] <= sum[r]) q.pop_back();
//		q.push_back(r);
//		if (r - l + 1 == m) {
//			ans = max(ans, sum[q.front()] - sum[l-1]);
//			if (q.front() == l)
//				q.pop_front();
//			l++;
//		}
//	}
//	while (l <= n) {
//		ans = max(ans, sum[q.front()] - sum[l - 1]);
//		if (q.front() == l)
//			q.pop_front();
//		l++;
//	}
//	cout << ans << '\n';
//	return 0;
//}
	
//int n, c;
//int a[100005];
//int dp[100005];
//int sum[100005];
//int mi[100005];
//deque<int> q;
//void solve() {
//	cin >> n >> c;
//	for (int i = 1; i <= n; i++) {
//		cin >> a[i];
//		sum[i] = sum[i - 1] + a[i];
//	}
//	if (c == 1) {
//		cout << 0 << '\n';
//		return;
//	}
//	for (int l = 1, r = 1; r <= n; r++) {
//		while (!q.empty() && a[q.back()] >= a[r])q.pop_back();
//		q.push_back(r);
//		if (r - l + 1 == c) {
//			mi[l] = a[q.front()];
//			if (q.front() == l)
//				q.pop_front();
//			l++;
//		}
//	}
//	for (int i = 1; i <= n; i++) {
//		dp[i] = dp[i - 1] + a[i];
//		if (i >= c)
//			dp[i] = min(dp[i], dp[i - c] + sum[i] - sum[i - c] - mi[i - c + 1]);
//	}
//	cout << dp[n] << '\n';
//}
//
//signed main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	solve();
//	return 0;
//}


//void solve() {
//	cin >> n >> k;
//	for (int i = 1; i <= n; i++) {
//		cin >> a[i];
//		sum[i] = sum[i - 1] + a[i];
//	}
//	for (int i = 1; i <= n; i++) {
//		while (!q.empty() && dp[q.back() - 1] - sum[q.back()] <= dp[i - 1] - sum[i]) q.pop_back();
//		q.push_back(i);
//		if (i - q.front() > k)
//			q.pop_front();
//		dp[i] = dp[q.front() - 1] - sum[q.front()] + sum[i];
//	}
//	cout << dp[n] << '\n';
//}

//int n, k;
//int a[100005];
//int dp[100005];
//int sum[100005];
//deque<int> q;
//
//void solve() {
//	cin >> n >> k;
//	for (int i = 1; i <= n; i++) {
//		cin >> a[i];
//		sum[i] = sum[i - 1] + a[i];
//	}
//	for (int i = 1; i <= n; i++) {
//		while (!q.empty() && dp[q.back() - 1] - sum[q.back()] <= dp[i - 1] - sum[i])q.pop_back();
//		q.push_back(i);
//		if (i-q.front()>k) {
//			q.pop_front();
//		}
//		if (i <= k) {
//			dp[i] = sum[i];
//		}
//		else {
//			dp[i] = dp[q.front() - 1] - sum[q.front()] + sum[i];
//		}
//	}
//	cout << dp[n] << '\n';
//}
//
//signed main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	solve();
//	return 0;
//}

//int h[1000006];
//int v[1000006];
//int val[1000006];
//int ans;
//int n;
//stack<int> st;
//signed main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> n;
//	for (int i = 1; i <= n; i++) {
//		cin >> h[i] >> v[i];
//	}
//	for (int i = 1; i <= n; i++) {
//		while (!st.empty() && h[st.top()] < h[i]) {
//			int now = st.top();
//			st.pop();
//			val[i] += v[now];
//		}
//		st.push(i);
//	}
//	while (!st.empty())st.pop();
//	for (int i = n; i >= 1; i--) {
//		while (!st.empty() && h[st.top()]<h[i]) {
//			int now = st.top();
//			st.pop();
//			val[i] += v[now];
//		}
//		st.push(i);
//	}
//	for (int i = 1; i <= n; i++) {
//		ans = max(ans, val[i]);
//	}
//	cout << ans;
//	return 0;
//}

//int n;
//int	h[2000006];
//
//signed main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//	cin >> n;
//	for (int i = 1; i <= n; i++) {
//		cin >> h[i];
//		h[i + n] = h[i];
//	}
//
//	
//	return 0;
//}

//int	n;
//int a[300005];
//
//signed main() {
//	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
//
//
//	return 0;
//}

int n;
int h[100005];
stack<int> st;
int ans;
signed main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> h[i];
	}
	for (int i = 1; i <= n; i++) {
		while(!st.empty()&&h[st.top()]>=h[i])
	}


	return 0;
}